//
// Created by zengyuhao on 25-4-29.
//

#ifndef ZORAL_CONVERT_DATA_TYPE_H
#define ZORAL_CONVERT_DATA_TYPE_H

#include <Eigen/Dense>
#include <vector>

template<typename T>
Eigen::Matrix<T, Eigen::Dynamic, 1> Vector2Eigen(const std::vector<T> &vec)
{
    Eigen::Matrix<T, Eigen::Dynamic, 1> eigen_vec(vec.size());
    for (size_t i = 0; i < vec.size(); ++i)
    {
        eigen_vec[i] = vec[i];
    }
    return eigen_vec;
}

template<typename T>
std::vector<T> Eigen2Vector(const Eigen::Matrix<T, Eigen::Dynamic, 1> &eigen_vec)
{
    std::vector<T> vec(eigen_vec.size());
    for (int i = 0; i < eigen_vec.size(); ++i)
    {
        vec[i] = eigen_vec[i];
    }
    return vec;
}

#endif // ZORAL_CONVERT_DATA_TYPE_H
